const http = require('http');
const fs = require('fs');
const path = require('path');

let server = http.createServer((req, res) => {
    // 1.0 解析浏览器请求的url中的查询参数字符串
    let { url, method } = req;  // /getHero?name=程咬金
    let [urlpath, querystring] = url.split('?')  // ['/getHero','name=程咬金']

    if (method == 'GET' && urlpath === '/getHero') {

        // 2.0 使用URLSearchParams解析出字符串对象
        let sparms = new URLSearchParams(querystring);
        let name = sparms.get('name');

        // 3.0 根据第二步中的参数过滤出data.json文件中的符合条件的数据（name=程咬金）
        // let jsonString = fs.readFileSync('./db/data.json', 'utf8');
        let filePath = path.join(__dirname, 'db/data.json');
        let jsonString = fs.readFileSync(filePath, 'utf8');
        // 3.1 吧jsonString 字符串转成js对象
        let heroArr = JSON.parse(jsonString);
        // 3.2 通过数组的filter方法过滤出想要的英雄数据
        let queryArr = heroArr.filter(item => item.name == name);
        // 4.0 将数据响应回客户端
        res.setHeader('Content-Type', 'application/json;charset=utf8');
        res.end(JSON.stringify(queryArr));
    } else {
        res.statusCode = 404;
        res.end('not found');
    }
});

server.listen(8003, () => {
    console.log('8003接口启动');
})